Computer systems of all types require periodic and sometimes unexpected or unplanned software maintenance. This applies to personal computers of all types e.g. portables and desktops as well as servers, and mainframes. When the computer system is large, expensive, or serving many users, the maintenance operations must necessarily be performed quickly and efficiently to minimize disruption of service and possible loss of revenue due to the computer system being unavailable during the planned or unplanned maintenance operation. Furthermore, a large system may have a large number of software items which were installed over a long period of time each one having different maintenance levels. Each item may also have various prerequisite items which must be installed or removed prior to installing that particular item or corequisite items which must be installed or removed during the same session or previously.
Software maintenance items may be distributed in portable media such as magnetic tapes, floppy disks, CD roms, or they may be distributed over a network or other communication channels including the internet, dial-up through a telephone service, via fiber optic cable, or other data channels known in the art.
Performing software maintenance on computer systems, particularly large systems is therefore a complicated and difficult procedure, prone to errors which can disable a valuable resource for periods much larger than can reasonable be planned. A number of solutions have been developed, however, none have be found to be completely satisfactory for addressing the problems described above.
For example, Tyra et al. in U.S. Pat. No. 5,493,682, incorporated herein by reference, describe a system for software maintenance based on object oriented programming concepts. However a considerable amount of definition is needed for events required to maintain a software object including event identifiers and event conditions; object definitions including object identifier, attributes, and methods to be performed; and dependency objects. Software already installed on many systems may not have such definitions so that creation of such definition may be a prohibitively burdensome task in order to use Tyra's maintenance system.
Bizuneh et al. in U.S. Pat. No. 5,805,891 describe a system for distributing a software maintenance module by first verifying and testing the module prior to distributing it to the end users.
Glowny et al. in U.S. Pat. No. 5,805,897 describe a system for installing software on a remote workstation in a network having a plurality of workstations including a local workstation. Installation at the remote workstation is initiated and controlled from the local workstation by communicating over the network.
Nakagawa et al. in U.S. Pat. No. 5,835,911 describe a software distribution and maintenance method using a plurality of user computers and a vendor computer having a software library. A user computer sends an inquiry over the network to the vendor computer for the latest configuration of an object software. The inquiry may be made periodically or in response to a user initiating the software. The vendor computer receives the inquiry and generates update instruction information about the latest version in the software library. The instruction information and a copy of the latest version object software are returned to the user computer via the network where the instruction information is processed to update the object software. Processing may include compiling and linking if necessary.
Nishiyama et al. in U.S. Pat. No. 5,859,977 describe a network system having both a processing network and a separate maintenance network having high reliability and high responsiveness. All software maintenance is carried out using the maintenance network thereby providing an overall system with high reliability and expendability.
Ahmad in U.S. Pat. No. 6,029,258 describes trouble shooting software for a software application. A user launches the trouble shooting software when encountering a problem with the application. The trouble shooter attempts to find a problem solution in an information store of problem solutions. If located, the solution is passed to the user to install. If no solution is found the trouble shooter connects to an internet trouble shooting site and server to obtain additional solutions. If no solution is found there, the trouble shooting software then recommends that the provider of the application be contacted about the problem.
deCarmo in U.S. Pat. No. 5,574,905 describes a method of editing a multimedia file having segments located in different data files, through use of a linked-list structure. Some editing operations therefore result in changes to the linked-list structure rather than the file itself, avoiding making file copies.
Kiichi in Japanese Patent JP3237530 describes a system for distributing software updates. An update object list file is received by a personal computer from a host computer. The personal computer then successively receives files of all update modules based on this object list file and updates its software.
Despite the aforementioned developments there remains a need for an improved software maintenance process.